package com.weijian.dal.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.weijian.dal.enums.StudyStatus;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

/**
 * 学习记录实体类（简化版）
 * 对应study_record表
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("study_record")
@AllArgsConstructor
@NoArgsConstructor
public class StudyRecord {

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 用户ID
     */
    @TableField("user_id")
    private Long userId;

    /**
     * 课程ID
     */
    @TableField("course_id")
    private Long courseId;

    /**
     * 学习状态：0-未开始，1-学习中，2-已完成
     */
    @TableField("status")
    private StudyStatus status;

    /**
     * 学习进度百分比
     */
    @TableField("progress_percent")
    private Integer progressPercent;

    /**
     * 总章节数
     */
    @TableField("total_chapters")
    private Integer totalChapters;

    /**
     * 已完成章节数
     */
    @TableField("completed_chapters")
    private Integer completedChapters;

    /**
     * 首次学习时间
     */
    @TableField("first_study_time")
    private LocalDateTime firstStudyTime;

    /**
     * 最后学习时间
     */
    @TableField("last_study_time")
    private LocalDateTime lastStudyTime;

    /**
     * 完成时间
     */
    @TableField("completion_time")
    private LocalDateTime completionTime;

    /**
     * 累计学习时长(分钟)
     */
    @TableField("study_duration")
    private Long studyDuration;

    /**
     * 创建时间
     */
    @TableField(value = "created_time", fill = FieldFill.INSERT)
    private LocalDateTime createdTime;

    /**
     * 更新时间
     */
    @TableField(value = "updated_time", fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updatedTime;
}